new Vue({
  el: '#app',
  data: {
    ossImgUrl: ossImgUrl,//oss图片域名
    env: '',//判断环境
    screenHeight: document.documentElement.clientHeight,     // 当前高度
    originHeight: document.documentElement.clientHeight,     //默认高度，用作比较
    isOriginHeight: true,    //当前高度是否仍等于默认高度
    id: "",//唯一标识
    version: "",// 区分是否在mmkapp里，判断是否显示支付宝支付方式
    model: "",// 2 安卓 3 ios 
    sign_price: "",//签约金额
    ensure_price: "0.00",//保证金
    ticket_code: "",//券码
    quan_price: "0.00",//券金额
    isReadonly: true,//抵扣券是否可编辑
    pay_price: "0.00",//实付金额
    isShowPaytype: true,//是否显示支付方式
    btnMsg: "立即付款",//按钮文字
    pay_type: "",//支付方式 1 微信 2支付宝 3 pos机 4 线下支付 0 支付金额为0
  },
  watch: {
    screenHeight(val) {
      if (this.originHeight - val > 60) {    //这里以防万一改了下判断形式，当屏幕高度减少了60px以上时才隐藏footer
        this.isOriginHeight = false;
      } else {
        this.isOriginHeight = true;
      }
    }
  },
  created() {
    // 初始化
    this.pay_type = "";
    // 获取地址栏参数
    if (getUrlParam("sign_price")) {
      this.sign_price = getUrlParam("sign_price");
      this.getIsShow();
    }
    if (getUrlParam("sign_price")) {
      this.pay_price = getUrlParam("sign_price");
    }
    if (getUrlParam("id")) {
      this.id = getUrlParam("id");
    }
    if (getUrlParam("version")) {
      this.version = getUrlParam("version");
    }
    if (getUrlParam("model")) {
      this.model = getUrlParam("model");
    }
  },
  mounted() {
    // 判断是否在小程序内
    var u = window.navigator.userAgent;
    var that = this;
    if (/MicroMessenger/i.test(u)) {//判断是否是微信环境
      wx.miniProgram.getEnv(res => {
        if (res.miniprogram) {// 小程序
          that.env = 'mp';
        }
      })
    }
    // 解决底部被键盘顶起的问题
    window.onresize = () => {
      return (() => {
        this.screenHeight = document.documentElement.clientHeight;
      })()
    }
  },
  methods: {
    // 初始化时根据签约金额判断支付方式是否显示
    getIsShow: function () {
      if (this.sign_price > 0) {//>0显示支付方式
        this.isShowPaytype = true;
        this.btnMsg = "立即付款";
      } else {//<0隐藏支付方式
        this.isShowPaytype = false;
        this.btnMsg = "提交";
      }
    },
    // 获取券码的抵扣金额
    getQuanPrice: function () {
      if (!this.ticket_code) { return }
      var that = this;
      get("api/ticket/" + this.ticket_code).then(function (res) {
        if (res.data && res.data.price) {
          that.quan_price = res.data.price.toFixed(2);
          that.priceJs();
        }
      })
    },
    // 计算实付金额
    priceJs: function () {
      var total = this.add(this.sign_price, this.ensure_price);
      var result = this.subtract(total, this.quan_price);
      if (result > 0) {//实付金额>0显示支付方式
        this.pay_price = result;
        this.isShowPaytype = true;
        this.btnMsg = "立即付款";
      } else {//实付金额<0隐藏支付方式
        this.pay_price = 0.00;
        this.isShowPaytype = false;
        this.btnMsg = "提交";
      }
    },
    // 两数相加方法
    add: function (arg1, arg2) {
      return (Math.round(arg1 * 100) + Math.round(arg2 * 100)) / 100;
    },
    // 两数相减（既一正数加一负数）
    subtract: function (arg1, arg2) {
      return this.add(arg1, -arg2);
    },
    // 选择支付方式
    payType: function (e) {
      this.pay_type = e;
    },
    // 提交
    submit: function () {
      if (!this.pay_type && this.pay_price > 0) {
        mui.toast("请选择支付方式");
        return
      }
      var that = this;
      post("api/users/pay", {
        id: this.id,
        ticket_code: this.ticket_code.replace(/\s*/g, "") ? this.ticket_code.replace(/\s*/g, "") : "",
        pay_type: this.pay_price > 0 ? this.pay_type : 0
      }).then(function (res) {
        if (res.data) {
          // 缓存手机号
          local.set("phone", res.data.phone);
          if (that.pay_price > 0) {//实付金额>0走支付流程
            var jsonData = {
              order_sn: res.data.order_sn,//订单编号
              body_title: "美美咖经销商签约",//订单描述
              amount: res.data.price//订单金额
            }
            // 1 微信 2支付宝 3 pos机 4 线下支付
            if (that.pay_type == 1) {//微信支付->调app和接口支付
              if (that.model == 2) {//android
                that.android_pay(1, jsonData);
              } else if (that.model == 3) {//ios
                that.ios_pay(1, jsonData);
              } else {//内部wx
                window.location.href = res.data.url;
              }
            } else if (that.pay_type == 2) {//支付宝支付->调app支付
              if (that.model == 2) {//android
                that.android_pay(2, jsonData);
              } else if (that.model == 3) {//ios
                that.ios_pay(2, jsonData);
              }
            } else if (that.pay_type == 3) {// pos机支付->弹出二维码
              $("#codepic").html("");
              that.qrcode(res.data.url);
            } else if (that.pay_type == 4) {//线下支付 -> 提交成功页，显示联系当地工作人员
              window.location.href = "submit_success.html?isShow=true&phone=" + res.data.phone;
            }
          } else {//实付金额<0 -> 提交成功页,不显示联系当地工作人员
            window.location.href = "submit_success.html?isShow=false&phone=" + res.data.phone;
          }
        }

      })
    },
    //安卓支付
    android_pay: function (type, jsonData) {
      switch (type) {
        case 1://微信支付
          window.WebViewJsController.jsGetData(2, 27, JSON.stringify(jsonData), null);
          break;
        case 2://支付宝支付
          window.WebViewJsController.jsGetData(2, 26, JSON.stringify(jsonData), null);
          break;
        default:
          break;
      }
    },
    // ios支付
    ios_pay: function (type, jsonData) {
      switch (type) {
        case 1://微信支付
          window.webkit.messageHandlers.wxpayscan.postMessage(jsonData);
          break;
        case 2://支付宝支付
          window.webkit.messageHandlers.alipayscan.postMessage(jsonData);
          break;
        default:
          break;
      }
    },
    // 生成二维码
    qrcode: function (url) {
      $("#codepic").qrcode({
        render: "canvas",
        //设置渲染方式，有table和canvas，使用canvas方式渲染性能相对来说比较好
        text: url,
        //扫描二维码后显示的内容,可以直接填一个网址，扫描二维码后自动跳向该链接
        width: "256",
        // //二维码的宽度
        height: "256",
        //二维码的高度
        background: "#ffffff",
        //二维码的后景色
        foreground: "#000000" //二维码的前景色

      });
      $("#poscodewrap").show();
    },
    // 关闭二维码弹窗
    closeCode: function () {
      $("#poscodewrap").hide();
      $("#codepic").html("");
      this.pay_type = "";
    },
    // 阻止冒泡和默认行为
    stop: function (e) {
      e.stopPropagation();
      e.preventDefault();
    }
  }
})